package com.dd.cloud.user.DTO.tencent;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;
import lombok.ToString;

import java.util.List;

/**
 * @Description: im即時通信回调单聊body参数
 * @Author: czg
 * @Date: 2023/7/7 9:53
 * @Version: 1.0.0
 */
@Data
@ToString
@JsonNaming(value = PropertyNamingStrategy.UpperCamelCaseStrategy.class)
public class  ImCallbackSinParamReq {

    /**
     * 回调命令
     */
    private String CallbackCommand;

    /**
     * 消息发送者 UserID
     */
    private String From_Account;

    /**
     * 消息接收者 UserID
     */
    private String To_Account;

    /**
     * 消息序列号，用于标记该条消息（32位无符号整数）
     */
    private long MsgSeq;

    /**
     * 消息随机数，用于标记该条消息（32位无符号整数）
     */
    private long MsgRandom;

    /**
     * 消息的发送时间戳，单位为秒
     * 单聊消息优先使用 MsgTime 进行排序，同一秒发送的消息则按 MsgSeq 排序，MsgSeq 值越大消息越靠后
     */
    private long MsgTime;

    /**
     * 该条消息的唯一标识
     */
    private String MsgKey;

    /**
     * 是否仅发送给在线用户标识。1代表仅发送给在线用户，否则为0
     */
    private int OnlineOnlyFlag;

    /**
     * 该条消息的发送结果，0表示发送成功，非0表示发送失败
     */
    private int SendMsgResult;

    /**
     * 该条消息下发失败的错误信息，若消息发送成功，则为"send msg succeed"
     */
    private String ErrorInfo;

    /**
     * To_Account 未读的单聊消息总数量（包含所有的单聊会话）。若该条消息下发失败（例如被脏字过滤），该字段值为-1
     */
    private int UnreadMsgNum;

    /**
     * 消息体
     */
    private List<ImCallbackParamTypeReq> MsgBody;

    /**
     * 消息自定义数据（云端保存，会发送到对端，程序卸载重装后还能拉取到
     */
    private String CloudCustomData;

}
